Редослед послова
време | меморија | улаз | излаз |
---|---|---|---|
2,35 s | 64 Mb | стандардни излаз | стандардни улаз |
Да би се изградио аутомобил, потребно је урадити низ послова. Неки послови зависе од других (на пример, пре него што се уграде точкови, потребно је да се уграде осовине). Напиши програм који одређује могући редослед изврашавања ових послова у коме су сва ограничења задовољена.
Улаз
Са стандардног улаза се учитава број \(n\) (\(1 \leq n \leq 50000\)), затим број \(m\) (\(1 \leq m \leq 10n\)) и након тога \(m\) парова бројева \(x_i\), \(y_i\) (\(0 \leq x_i, y_i < n\)), раздвојених размаком, који означавају да је посао \(y_i\) неопходно урадити пре посла \(x_i\).
Излаз
На стандардни излаз исписати \(n\) бројева послова у неком редоследу у ком их је могуће извршити (такав редослед ће гарантовано бити могуће направити). Сваки број исписати у посебном реду.
Пример
Улаз
6 6 3 1 3 2 4 2 4 5 1 0 0 5
Излаз
2 5 0 1 3 4
Морате бити улоговани како бисте послали задатак на евалуацију.